BLIP-2 (Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models)
1. 서론 (Introduction)
인공지능 연구의 흐름은 단일 모달리티(Unimodal) 처리에서 멀티모달(Multimodal) 처리로 급격하게 이동하고 있다. 특히 컴퓨터 비전(Computer Vision)과 자연어 처리(Natural Language Processing, NLP)를 결합하여 시각 정보와 언어 정보를 동시에 이해하고 생성하는 시각-언어 사전 학습(Vision-Language Pre-training, VLP)은 최근 몇 년간 가장 역동적인 연구 분야로 자리 잡았다. CLIP, ALBEF, 그리고 BLIP-1과 같은 선구적인 모델들은 대규모 이미지-텍스트 쌍을 학습하여 이미지 검색, 캡셔닝, 시각적 질의응답(Visual Question Answering, VQA) 등 다양한 다운스트림 태스크(Downstream Tasks)에서 괄목할 만한 성과를 거두었다.
그러나 이러한 발전 이면에는 ’비용’과 ’확장성’이라는 거대한 장벽이 존재했다. 기존의 VLP 모델들은 성능 향상을 위해 모델의 크기를 키우고 학습 데이터의 양을 기하급수적으로 늘리는 방식을 택했다. 이는 필연적으로 막대한 컴퓨팅 자원을 요구하게 되었고, 최첨단 모델을 학습시키는 것은 소수의 거대 기술 기업만이 가능한 영역으로 남게 되었다. 또한, 챗GPT(ChatGPT)의 등장으로 대표되는 거대 언어 모델(Large Language Models, LLMs)의 혁신적인 언어 생성 능력을 시각 모델과 결합하고자 하는 시도가 이어졌으나, 수십억(Billions)에서 수천억 파라미터에 달하는 LLM을 시각 모델과 함께 처음부터 학습(End-to-End Training)시키는 것은 현실적으로 불가능에 가까운 비용을 초래했다.
DeepMind의 Flamingo는 이러한 문제를 해결하기 위해 LLM을 동결(Freeze)하고 시각 정보를 주입하는 어댑터 레이어만을 학습시키는 방식을 제안하여 퓨샷(Few-shot) 학습에서 뛰어난 성능을 보였다. 하지만 Flamingo 역시 여전히 수십억 개의 파라미터를 가진 거대 모델을 학습시켜야 했으며, 시각 정보와 언어 정보 간의 정렬(Alignment) 효율성 측면에서 개선의 여지가 있었다.1
이러한 배경에서 Salesforce Research가 제안한 **BLIP-2 (Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models)**는 VLP 연구의 패러다임을 근본적으로 전환시켰다. BLIP-2의 핵심 철학은 “바퀴를 다시 발명하지 말라“는 것이다. 이미 세상에는 강력한 성능을 검증받은 시각 모델(Vision Transformers)과 언어 모델(LLMs)이 존재한다. BLIP-2는 이 거인들을 ‘동결’ 상태로 유지한 채, 그 사이를 연결하는 가볍고 효율적인 모듈인 **Q-Former (Querying Transformer)**만을 학습시키는 전략을 취했다. 이는 마치 서로 다른 언어를 사용하는 두 전문가(시각 전문가와 언어 전문가) 사이에 유능한 통역사를 배치하는 것과 같으며, 이를 통해 학습 비용을 획기적으로 절감하면서도 성능은 오히려 향상시키는 결과를 낳았다.1
본 보고서는 BLIP-2 모델의 아키텍처, 학습 원리, 성능, 그리고 그 기술적 함의를 심층적으로 분석한다. 특히 Q-Former가 어떻게 시각-언어 간의 간극(Modality Gap)을 해소하는지, 2단계 학습 전략이 어떤 원리로 작동하는지, 그리고 이 모델이 실제 애플리케이션에서 어떻게 활용될 수 있는지를 면밀히 고찰한다.
2. 기술적 배경 및 관련 연구 (Background & Related Works)
BLIP-2를 온전히 이해하기 위해서는 현재 VLP 분야의 기술적 맥락과 선행 연구들의 한계를 파악하는 것이 필수적이다.
2.1 시각-언어 사전 학습의 진화
초기 VLP 모델들은 주로 객체 탐지기(Object Detector)를 사용하여 이미지 영역(Region)의 특징을 추출하고 이를 텍스트 임베딩과 결합하는 방식을 사용했다. 그러나 ViT(Vision Transformer)의 등장 이후, 이미지를 패치(Patch) 단위로 나누어 직접 트랜스포머에 입력하는 방식이 주류가 되었다.
- CLIP (Contrastive Language-Image Pre-training): 텍스트와 이미지의 전체적인 표현을 일치시키는 대조 학습(Contrastive Learning)을 통해 강력한 제로샷 분류 능력을 보여주었다. 하지만 생성(Generation) 능력이 부족하다는 한계가 있었다.
- SimVLM & BEIT: 생성적 목적 함수를 도입하여 이미지 캡셔닝 등의 태스크 성능을 높였으나, 텍스트 이해 능력이나 복잡한 추론 능력은 여전히 LLM에 비해 제한적이었다.
2.2 거대 언어 모델(LLM)의 부상과 결합 시도
GPT-3, OPT, Flan-T5와 같은 LLM은 방대한 텍스트 데이터를 학습하여 뛰어난 언어 이해 및 생성 능력, 그리고 문맥 내 학습(In-context Learning) 능력을 갖추고 있다. 연구자들은 이 강력한 언어 능력을 시각 태스크에 활용하고자 했으나, 두 가지 문제에 봉착했다.
- Catastrophic Forgetting (파멸적 망각): LLM을 시각 데이터로 파인튜닝(Fine-tuning)할 경우, 기존에 학습한 언어 능력을 잃어버리는 현상이 발생한다.
- Modality Gap (모달리티 간극): 시각적 특징 공간과 언어적 임베딩 공간은 본질적으로 다르다. 단순히 시각 특징을 LLM에 주입한다고 해서 LLM이 이를 ’단어’처럼 이해할 수 있는 것은 아니다.
2.3 Flamingo의 접근법과 한계
DeepMind의 Flamingo는 LLM을 동결하고, ’Perceiver Resampler’라는 모듈을 통해 시각 정보를 고정된 수의 토큰으로 압축한 뒤, 이를 LLM의 레이어 사이에 삽입된 Gated Cross-Attention 레이어에 주입하는 방식을 택했다. 이 방식은 SOTA 성능을 달성했으나, 여전히 수십억 개의 파라미터를 학습해야 했으며, 수백 기가바이트의 학습 데이터를 필요로 했다. BLIP-2는 Flamingo가 달성한 성능을 훨씬 적은 자원으로, 더 효율적인 아키텍처를 통해 능가하는 것을 목표로 설계되었다.1
3. BLIP-2 아키텍처 심층 분석 (Architecture Deep Dive)
BLIP-2의 아키텍처는 효율성과 범용성을 극대화하기 위해 설계되었다. 전체 구조는 (1) 동결된 이미지 인코더(Frozen Image Encoder), (2) 동결된 거대 언어 모델(Frozen LLM), 그리고 이 둘을 매개하는 (3) Q-Former로 구성된다.
3.1 동결된 이미지 인코더 (The Frozen Image Encoder)
BLIP-2는 시각적 특징 추출을 위해 사전 학습된 비전 트랜스포머(ViT)를 사용한다. 중요한 점은 이 인코더의 파라미터를 학습 과정에서 전혀 업데이트하지 않는다는 것이다.
- 모델 선택의 유연성: BLIP-2 프레임워크는 특정 인코더에 종속되지 않는다. 논문에서는 CLIP ViT-L/14와 EVA-CLIP ViT-g/14 두 가지를 실험했다. 특히 10억 개(1B)에 가까운 파라미터를 가진 ViT-g/14를 사용했을 때 성능이 대폭 향상되었는데, 이는 더 강력한 시각 모델을 사용할수록 BLIP-2의 전체 성능도 비례하여 증가함을 시사한다.2
- 동결의 이점: 이미지 인코더를 동결함으로써 시각적 특징 추출의 일관성을 유지하고, 치명적인 망각(Catastrophic Forgetting)을 방지할 수 있다. 무엇보다 역전파(Backpropagation) 과정에서 인코더를 계산 그래프에 포함시키지 않아도 되므로 메모리 사용량을 획기적으로 줄일 수 있다.
3.2 Q-Former (Querying Transformer): 핵심 엔진
Q-Former는 BLIP-2의 가장 독창적인 발명품이다. 그 목적은 이미지 인코더에서 추출된 방대한 시각 정보 중에서, 텍스트와 관련성이 높은 정보만을 선별적으로 추출하여 LLM이 이해할 수 있는 형태로 가공하는 것이다. Q-Former는 일종의 ‘병목(Bottleneck)’ 역할을 수행한다.
3.2.1 구조적 특징: 이중 트랜스포머 (Dual Transformer)
Q-Former는 BERT 기반의 구조를 가지며, 내부적으로 두 개의 하위 모듈이 결합된 형태를 띤다.5
- 이미지 트랜스포머(Image Transformer): 학습 가능한 쿼리 벡터(Learnable Query Vectors)를 입력으로 받아, 동결된 이미지 인코더의 출력과 교차 주의(Cross-Attention)를 수행한다. 이를 통해 시각 정보를 쿼리 벡터로 가져온다.
- 텍스트 트랜스포머(Text Transformer): 텍스트 입력을 처리한다. 이 모듈은 쿼리 벡터들과 정보를 교환할 수 있는 자기 주의(Self-Attention) 층을 포함한다.
이 두 모듈은 파라미터를 공유하는 Self-Attention 레이어를 가지고 있어, 텍스트 정보와 시각(쿼리) 정보가 서로 상호작용할 수 있는 기반을 마련한다.
3.2.2 학습 가능한 쿼리 (Learnable Queries)
BLIP-2는 입력 이미지와 무관하게 고정된 개수(32개)의 **학습 가능한 쿼리 임베딩(Learnable Query Embeddings)**을 사용한다.7
- 역할: 이 쿼리들은 “이미지에서 무엇을 보아야 하는가?“를 묻는 질문자와 같다. 초기에는 무작위 값으로 시작하지만, 학습을 통해 “텍스트와 관련된 시각 정보를 추출하는 최적의 질문 형태“를 배우게 된다.
- 병목 효과 (Information Bottleneck): 입력 이미지는 수백 개의 패치 토큰으로 구성되지만, 쿼리는 단 32개뿐이다. 이 강력한 병목 구조는 Q-Former가 이미지의 모든 잡음(Noise)을 버리고, 가장 핵심적인 정보만을 압축하도록 강제한다. 이 압축된 정보는 이후 LLM의 부담을 크게 덜어준다.8
3.2.3 정교한 어텐션 마스킹 (Attention Masking)
Q-Former의 학습 효율은 쿼리와 텍스트 사이의 정보 흐름을 제어하는 마스킹 전략에 달려 있다.8
- 이미지-텍스트 대조 학습 시: 쿼리와 텍스트가 서로 보지 못하게 차단(Uni-modal Masking)하여 각각 독립적인 임베딩을 생성하게 한다.
- 이미지 기반 텍스트 생성 시: 쿼리는 텍스트를 볼 수 없지만, 텍스트는 쿼리를 볼 수 있게 한다(Multimodal Causal Masking). 즉, 텍스트 생성은 시각 정보(쿼리)에 의존한다.
- 이미지-텍스트 매칭 시: 쿼리와 텍스트가 서로를 모두 볼 수 있게 한다(Bi-directional Masking)하여 깊은 수준의 상호작용을 유도한다.
3.3 동결된 거대 언어 모델 (Frozen LLM)
마지막 단계에서 Q-Former의 출력은 LLM으로 전달된다. BLIP-2는 두 가지 유형의 LLM을 지원한다.
-
Decoder-only LLM: OPT (Open Pre-trained Transformer) 계열. 주로 텍스트 생성에 강점이 있다.
-
Encoder-Decoder LLM: Flan-T5 계열. 인스트럭션 튜닝(Instruction Tuning)이 되어 있어 지시 사항을 따르는 능력이 탁월하다.
LLM 역시 동결 상태로 유지되며, 오직 시각적 입력을 처리하기 위한 인터페이스 역할만 수행한다. 이는 LLM 본연의 강력한 언어 능력을 훼손하지 않고 그대로 활용하기 위함이다.
4. 2단계 사전 학습 전략 (Two-Stage Pre-training Strategy)
BLIP-2의 성공 비결은 학습 과정을 두 단계로 명확히 분리한 데 있다. 1단계에서는 시각적 이해와 정렬에 집중하고, 2단계에서는 언어적 생성 능력으로의 확장에 집중한다.
4.1 1단계: 시각-언어 표현 학습 (Vision-Language Representation Learning)
이 단계의 목표는 Q-Former를 학습시켜 이미지 인코더로부터 유의미한 정보를 추출하게 만드는 것이다. 이때 LLM은 관여하지 않으며, 동결된 이미지 인코더와 학습되는 Q-Former만이 존재한다. 세 가지 주요 손실 함수(Loss Functions)가 동시에 최적화된다.7
4.1.1 이미지-텍스트 대조 학습 (Image-Text Contrastive Learning, ITC)
ITC는 시각적 표현과 텍스트 표현을 동일한 의미 공간(Semantic Space) 상에 정렬시킨다.
- 메커니즘: Q-Former의 32개 쿼리 출력 중 텍스트와 가장 유사도가 높은 하나를 선택하여, 텍스트의 토큰 임베딩과의 유사도를 계산한다.
- 효과: 긍정 쌍(Positive Pair)은 가깝게, 부정 쌍(Negative Pair)은 멀게 만듦으로써 기본적인 매칭 능력을 학습시킨다. 이는 이미지 검색 태스크에 직접적인 도움을 준다.
4.1.2 이미지 기반 텍스트 생성 (Image-grounded Text Generation, ITG)
ITG는 Q-Former가 이미지를 보고 텍스트를 생성하도록 훈련한다.
- 메커니즘: Q-Former 내부의 텍스트 트랜스포머를 디코더로 활용한다. 쿼리 벡터들이 인코더의 출력처럼 작용하고, 텍스트 트랜스포머는 이를 바탕으로 텍스트를 한 단어씩 생성한다.
- 효과: 이 과정은 쿼리 벡터가 이미지의 시각적 정보를 텍스트를 생성할 수 있을 만큼 충분히 포착하고 있는지를 검증하고 강화한다.
4.1.3 이미지-텍스트 매칭 (Image-Text Matching, ITM)
ITM은 가장 세밀한 수준의 이해를 요구한다.
- 메커니즘: 쿼리와 텍스트가 양방향으로 정보를 교환한 후, 이 쌍이 일치하는지 불일치하는지를 이진 분류(Binary Classification)한다.
- Hard Negative Mining: 단순히 틀린 답을 주는 것이 아니라, 대조 학습 단계에서 모델이 헷갈려했던(유사도가 높았던) 오답들을 선별하여 학습에 사용함으로써 변별력을 극대화한다.
4.2 2단계: 시각-언어 생성 학습 (Vision-to-Language Generative Learning)
1단계가 완료되면 Q-Former는 시각적 특징을 잘 추출하는 전문가가 된다. 2단계에서는 이 Q-Former를 LLM에 연결한다.2
4.2.1 Soft Prompt로서의 연결
Q-Former의 출력인 쿼리 벡터(Z)의 차원은 LLM의 입력 임베딩 차원과 다르다. 따라서 이를 맞춰주기 위해 선형 투영 층(Linear Projection Layer) 하나가 추가된다. 투영된 쿼리 벡터들은 LLM의 입력 텍스트 토큰들 앞에 붙는 Soft Prompt 역할을 한다.
- 의미: “이 시각적 문맥(Soft Prompt)을 바탕으로, 이어지는 텍스트를 생성하라“는 조건부 생성(Conditional Generation) 태스크가 된다.
4.2.2 LLM 유형에 따른 적응
- Decoder-only (OPT): Soft Prompt 뒤에 토큰과 텍스트가 이어지며, 다음 토큰을 예측하는 언어 모델링 손실(Language Modeling Loss)을 사용한다.
- Encoder-Decoder (Flan-T5): Soft Prompt와 텍스트가 인코더에 입력되고, 디코더가 정답 텍스트를 생성하는 방식을 취한다. 실험 결과, Flan-T5를 사용했을 때 지시 따르기(Instruction Following) 능력이 더 우수한 것으로 나타났다.9
5. 데이터셋 및 CapFilt 전략 (Datasets and CapFilt Strategy)
데이터는 모델 성능의 핵심이다. BLIP-2는 양적인 팽창뿐만 아니라 질적인 향상에도 주력했다.
5.1 학습 데이터 구성
BLIP-2는 총 1억 2,900만 장(129M)의 이미지-텍스트 쌍을 학습에 사용했다.2 이는 LAION-5B와 같은 초대형 데이터셋보다는 작지만, 정제된 구성을 갖추고 있다.
- COCO (Common Objects in Context): 높은 품질의 캡션이 달린 표준 데이터셋.
- Visual Genome: 객체 간의 관계 등 상세한 정보가 포함된 데이터셋.
- CC3M (Conceptual Captions 3M) & CC12M: 웹에서 수집된 이미지와 alt-text. 양은 많지만 노이즈가 많다.
- SBU Captions: 사용자 생성 콘텐츠 기반의 데이터셋.
- LAION-400M (Subset): 1억 1,500만 장을 선별하여 사용.
5.2 CapFilt: 노이즈 제거의 기술
웹 데이터(CC, LAION 등)는 캡션이 이미지와 무관하거나 품질이 낮은 경우가 허다하다. 이를 그대로 학습하면 모델 성능이 저하된다. BLIP-2는 BLIP-1에서 제안된 CapFilt (Captioning and Filtering) 파이프라인을 적용했다.2
-
Captioner: 별도로 학습된 캡셔닝 모델이 웹 이미지에 대해 새로운 합성 캡션을 생성한다.
-
Filter: 생성된 캡션과 원본 웹 캡션을 평가하여, 이미지와의 정합성이 떨어지는 캡션은 과감히 제거한다.
이 과정을 통해 데이터셋의 크기는 유지하면서도, 텍스트의 품질을 ‘교과서’ 수준으로 끌어올렸다. 이는 적은 데이터로도 높은 성능을 내는 효율성의 비결 중 하나다.
6. 성능 평가 및 비교 분석 (Performance Evaluation)
BLIP-2는 다양한 벤치마크에서 기존 최고 성능 모델(SOTA)인 Flamingo를 압도하는 결과를 보여주었다. 특히 ‘효율성’ 지표인 파라미터 수 대비 성능에서 독보적이다.
6.1 시각적 질의응답 (VQA)
VQA는 모델이 이미지를 보고 질문을 이해하여 답을 내놓아야 하는 복합적인 태스크다.
표 1. 제로샷 VQA 성능 비교 (Zero-shot VQA Performance)
| 모델 (Model) | 학습 파라미터 (Trainable) | 전체 파라미터 (Total) | VQAv2 (val) | GQA (test-dev) | OK-VQA (val) |
|---|---|---|---|---|---|
| Flamingo-80B | 10.6B | 80B | 56.3 | - | 50.6 |
| BLIP-2 (FlanT5-XXL) | 1.2B | 12.1B | 65.0 | 44.7 | 45.9 |
| BLIP-2 (OPT-6.7B) | 1.1B | 7.8B | 58.8 | 38.2 | 31.7 |
(데이터 출처: 4)
- 분석: BLIP-2 (FlanT5-XXL)는 VQAv2에서 Flamingo-80B보다 8.7% 높은 점수를 기록했다. 더욱 놀라운 점은 학습 파라미터 수가 Flamingo의 1/54 수준이라는 것이다. 이는 Q-Former를 통한 시각 정보의 압축 및 전달 방식이 Flamingo의 방식보다 훨씬 효율적임을 증명한다.
- OK-VQA의 시사점: 외부 지식을 요하는 OK-VQA에서는 Flamingo가 앞섰다. 이는 Flamingo의 백본인 Chinchilla-70B 모델이 BLIP-2의 FlanT5-11B보다 훨씬 방대한 지식을 가지고 있기 때문이다. 즉, 순수 추론은 BLIP-2가 효율적이나, 지식의 총량은 LLM의 크기에 비례함을 알 수 있다.9
6.2 이미지 캡셔닝 (Image Captioning)
이미지를 설명하는 문장을 생성하는 태스크에서도 BLIP-2는 탁월한 성능을 보였다.
- COCO: CIDEr 점수 145.8을 기록하며 기존 SOTA를 경신했다.2
- NoCaps: 학습 데이터에 없는 새로운 객체(Out-of-Distribution)에 대한 캡셔닝 성능을 평가하는 NoCaps에서도 최고 성능을 기록했다. 이는 LLM의 일반화 능력이 시각 태스크로 잘 전이되었음을 의미한다.
6.3 이미지-텍스트 검색 (Retrieval)
생성 모델임에도 불구하고 BLIP-2는 검색 태스크에서도 강점을 보인다. 이는 1단계 학습에서 ITC(대조 학습)와 ITM(매칭)을 철저히 수행했기 때문이다. Flickr30k와 COCO 데이터셋에서 Zero-shot 및 Fine-tuned 설정 모두에서 기존 검색 특화 모델들을 상회하는 성능을 입증했다.10
7. 창발적 능력과 정성적 분석 (Emergent Capabilities)
BLIP-2의 진정한 가치는 단순히 벤치마크 점수를 높인 것이 아니라, 명시적으로 학습하지 않은 능력들이 **창발(Emergence)**했다는 점에 있다.
7.1 지시 기반 이미지-텍스트 생성 (Instructed Zero-shot Generation)
기존 모델들은 “이미지를 설명하라“는 고정된 태스크만 수행했다. 그러나 BLIP-2, 특히 Flan-T5 기반 모델은 자연어 지시(Instruction)를 이해하고 그에 맞춰 이미지를 처리한다.1
- 사례: “이 이미지가 으스스하게 느껴지는 이유를 설명해줘“라고 물으면, 모델은 이미지의 조명, 그림자, 객체의 표정 등을 분석하여 논리적인 답변을 생성한다.
- Visual Knowledge Reasoning: 이미지 속 물체의 기능을 묻거나, 상황에 맞는 행동을 제안하는 등 고차원적인 추론이 가능하다. 예를 들어, 부서진 자전거 사진을 보고 “이것을 고치려면 어떤 도구가 필요한가?“라는 질문에 답할 수 있다.9
7.2 시각적 대화 (Visual Conversation)
BLIP-2는 단발성 질의응답을 넘어, 문맥을 유지하며 대화하는 능력을 갖추고 있다. ChatCaptioner와 같은 애플리케이션은 BLIP-2를 활용하여 사용자와 이미지를 주제로 깊이 있는 대화를 나눌 수 있음을 보여주었다.14 이는 Q-Former가 추출한 시각 정보가 LLM의 대화 능력과 결합되어 강력한 시너지 효과를 낸 결과다.
8. 기술적 구현 및 생태계 (Implementation & Ecosystem)
BLIP-2는 연구 논문으로 끝난 것이 아니라, 개발자 생태계에 깊이 통합되어 실질적인 도구로 활용되고 있다.
8.1 Salesforce LAVIS 라이브러리
Salesforce는 **LAVIS (Language-Vision Intelligence)**라는 라이브러리를 통해 BLIP-2의 소스 코드와 사전 학습된 모델을 전면 공개했다.15
- 특징: 원스톱 솔루션을 지향하여 데이터 로딩, 모델 학습, 추론, 평가를 통일된 인터페이스로 제공한다.
- 라이선스: BSD-3-Clause 라이선스를 채택하여 학계뿐만 아니라 산업계에서도 상업적 용도로 자유롭게 활용할 수 있도록 허용했다.17 이는 기술의 민주화에 크게 기여한 결정이다.
8.2 Hugging Face 통합
세계 최대의 AI 모델 허브인 Hugging Face Transformers에도 BLIP-2가 정식으로 통합되었다.8
- 사용 용이성: 단 몇 줄의 파이썬 코드로 모델을 불러와 사용할 수 있다.
Blip2ForConditionalGeneration클래스는 복잡한 Q-Former와 LLM의 연결 구조를 추상화하여 제공한다. - 최적화:
float16이나bfloat16데이터 타입을 지원하여 GPU 메모리 사용량을 최적화했다. 이를 통해 12B 모델인 BLIP-2 FlanT5-XXL도 일반적인 상용 GPU(예: A100, 심지어 양자화 시 3090급)에서 구동이 가능하다.20
8.3 구현 예시 (Code Insight)
from transformers import Blip2Processor, Blip2ForConditionalGeneration
import torch
from PIL import Image
# 모델 및 프로세서 로드
processor = Blip2Processor.from_pretrained("Salesforce/blip2-flan-t5-xxl")
model = Blip2ForConditionalGeneration.from_pretrained(
"Salesforce/blip2-flan-t5-xxl", device_map="auto", torch_dtype=torch.float16
)
# 추론
image = Image.open("image.jpg")
inputs = processor(images=image, text="Question: What is in the picture? Answer:", return_tensors="pt").to("cuda", torch.float16)
generated_ids = model.generate(**inputs)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True).strip()
print(generated_text)
위 코드는 BLIP-2가 얼마나 쉽게 현업에 적용될 수 있는지를 보여준다.
9. 한계점 및 향후 연구 방향 (Limitations & Future Outlook)
혁신적인 성과에도 불구하고 BLIP-2는 완벽하지 않으며, 몇 가지 해결해야 할 과제를 안고 있다.
9.1 문맥 길이의 제약 (Context Length Constraint)
Q-Former는 모든 시각 정보를 단 32개의 쿼리 벡터로 압축한다. 이는 효율적이지만, 이미지 내의 작은 글씨(OCR)나 군중 속의 특정 인물과 같이 미세한 디테일(Fine-grained details)이 필요한 태스크에서는 정보 손실을 야기할 수 있다.22 향후 연구에서는 쿼리의 개수를 동적으로 조절하거나, 압축 효율을 높이는 메커니즘이 필요하다.
9.2 환각 현상 (Hallucination)
LLM을 기반으로 하기 때문에, 이미지에 없는 내용을 마치 있는 것처럼 그럴듯하게 지어내는 환각 문제가 발생할 수 있다. 이는 BLIP-2가 시각 정보(Soft Prompt)를 LLM에 전달할 때, LLM이 이를 무시하거나 자신의 내부 지식(Prior Knowledge)을 우선시하는 경향이 있기 때문이다. 이를 완화하기 위한 정렬(Alignment) 기법의 고도화가 요구된다.
9.3 In-context Learning 능력의 부족
Flamingo는 여러 장의 이미지-텍스트 예시를 보여주면(Few-shot) 성능이 비약적으로 상승하는 In-context Learning 능력이 강력하다. 반면 BLIP-2는 제로샷 성능은 뛰어나지만, 퓨샷 설정에서의 성능 향상은 Flamingo만큼 뚜렷하지 않다. 이는 Q-Former 구조가 다중 이미지 입력을 처리하는 데 최적화되지 않았기 때문일 수 있다.23
9.4 파생 연구로의 확장
BLIP-2는 하나의 모델이라기보다 ’프레임워크’에 가깝다. 따라서 이를 기반으로 더 강력한 모델들이 파생되고 있다.
- InstructBLIP: BLIP-2를 기반으로 시각적 지시 튜닝(Visual Instruction Tuning)을 적용하여 성능을 더욱 끌어올린 모델이다.
- BLIP-Diffusion: BLIP-2의 구조를 이미지 생성(Generation) 모델인 Stable Diffusion에 접목하여, 텍스트 제어 능력이 뛰어난 이미지 생성 모델을 구현했다.25
10. 결론 (Conclusion)
BLIP-2는 “거대 모델의 시대에 어떻게 효율적으로 멀티모달 AI를 구축할 것인가?“라는 난제에 대해 **“동결과 연결(Freeze and Connect)”**이라는 명쾌한 해법을 제시했다. 수천억 원의 비용이 드는 모델 학습 경쟁에서 벗어나, 기존에 잘 만들어진 모델들을 지혜롭게 결합하는 모듈형(Modular) 접근법이 얼마나 강력할 수 있는지를 증명했다.
이 연구가 남긴 족적은 명확하다.
- 효율성의 승리: 더 작은 모델, 더 적은 학습 비용으로도 거대 모델(Flamingo)을 이길 수 있음을 보여주었다.
- LLM의 시각화: 텍스트 모델인 LLM에게 ’눈’을 달아주는 가장 표준적이고 효과적인 방법론(Q-Former & Bottleneck)을 정립했다.
- 오픈소스 생태계 기여: 고성능 모델을 누구나 사용할 수 있게 공개함으로써, AI 연구의 민주화를 앞당겼다.
결론적으로, BLIP-2는 시각-언어 모델링의 새로운 표준(De Facto Standard)으로 자리 잡았으며, 향후 등장할 모든 멀티모달 인공지능 에이전트들의 설계도에 영감을 주는 핵심 기술이 될 것이다. 연구자들은 이제 BLIP-2가 닦아놓은 길 위에서 비디오, 오디오, 3D 등 더 넓은 세상의 정보를 LLM에 연결하는 여정을 계속하고 있다.
11. 참고 자료
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models - arXiv, https://arxiv.org/abs/2301.12597
- BLIP-2: Bootstrapping Language-Image Pre … - The Nemati Lab, https://arxiv.org/html/2301.12597
- BLIP-2: A new Visual Language Model by Salesforce - Wandb, https://wandb.ai/gladiator/BLIP-2/reports/BLIP-2-A-new-Visual-Language-Model-by-Salesforce–VmlldzozNjM0NjYz
- BLIP-2 - Hugging Face, https://huggingface.co/docs/transformers/v4.36.1/model_doc/blip-2
- BLIP-2: A Breakthrough Approach in Vision-Language Pre-training | by Femiloye Oyerinde, https://medium.com/@femiloyeseun/blip-2-a-breakthrough-approach-in-vision-language-pre-training-1de47b54f13a
- Q-Former. The ability to seamlessly integrate and… | by Abdulkader Helwan | Medium, https://abdulkaderhelwan.medium.com/q-former-1d83163975da
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models - The Nemati Lab, https://www.nematilab.info/bmijc/assets/081823_paper.pdf
- blog/blip-2.md at main · huggingface/blog - GitHub, https://github.com/huggingface/blog/blob/main/blip-2.md
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models - Proceedings of Machine Learning Research, https://proceedings.mlr.press/v202/li23q/li23q.pdf
- Neural Networks Intuitions: 17. BLIP series — BLIP, BLIP-2 and Instruct BLIP— Papers Explanation | by Raghul Asokan, https://raghul-719.medium.com/neural-networks-intuitions-17-blip-series-blip-blip-2-and-instruct-blip-papers-explanation-2378bc860d53
- Learning by Correction: Efficient Tuning Task for Zero-Shot Generative Vision-Language Reasoning - arXiv, https://arxiv.org/html/2404.00909v1
- WikiDO: A New Benchmark Evaluating Cross-Modal Retrieval for Vision-Language Models, https://proceedings.neurips.cc/paper_files/paper/2024/file/fe759454e97d56d3aea73a1512364d5f-Paper-Datasets_and_Benchmarks_Track.pdf
- BLIP-2 paper review and trial of zero shot image-to-text generation | by satojkovic | Medium, https://medium.com/@satojkovic/blip-2-paper-review-and-trial-of-zero-shot-image-to-text-generation-40324fa3a031
- [2303.06594] ChatGPT Asks, BLIP-2 Answers: Automatic Questioning Towards Enriched Visual Descriptions - arXiv, https://arxiv.org/abs/2303.06594
- BLIP-2: Scalable Multimodal Pre-training Method - Salesforce, https://www.salesforce.com/blog/blip-2/
- salesforce/LAVIS: LAVIS - A One-stop Library for Language-Vision Intelligence - GitHub, https://github.com/salesforce/LAVIS
- LAVIS/lavis/models/blip2_models/Qformer.py at main · salesforce/LAVIS - GitHub, https://github.com/salesforce/LAVIS/blob/main/lavis/models/blip2_models/Qformer.py
- LAVIS/lavis/models/blip2_models/blip2_opt.py at main · salesforce/LAVIS - GitHub, https://github.com/salesforce/LAVIS/blob/main/lavis/models/blip2_models/blip2_opt.py
- BLIP-2 - Hugging Face, https://huggingface.co/docs/transformers/main/en/model_doc/blip-2
- Salesforce/blip2-flan-t5-xxl - Hugging Face, https://huggingface.co/Salesforce/blip2-flan-t5-xxl
- The BLIP-2 implement difference between this repo and HuggingFace · Issue #418 · salesforce/LAVIS - GitHub, https://github.com/salesforce/LAVIS/issues/418
- Visual Cropping Improves Zero-Shot Question Answering of Multimodal Large Language Models - OpenReview, https://openreview.net/pdf/f2ad76719dfee0c87dca3a57805c96ad1c1a0795.pdf?utm_source=chatgpt.com
- Zero-Shot Visual Reasoning by Vision-Language Models: Benchmarking and Analysis, https://arxiv.org/html/2409.00106v1
- A Simple Baseline for Zero-shot Visual Question Answering via Synthetic Data Generation - OpenReview, https://openreview.net/pdf/4497970758d86379015800947ff3f5bce85ee8e8.pdf
- [2305.14720] BLIP-Diffusion: Pre-trained Subject Representation for Controllable Text-to-Image Generation and Editing - arXiv, https://arxiv.org/abs/2305.14720